5 kyu
返回字串中,不重複的第一個字元。
大小寫視為相同,但返回時需要返回對應原字串的正確字元。
找不重複字元,那就必定需要確認完整字串。
但又可能有一個或多個的不重複字元。
match 方法在 JavaScript 中會返回一個陣列,其中包含了根據正則表達式匹配的結果。
驗證該 match 的長度,返回第一個長度為 1 的結果,否則回傳空字串。
let reg = /s[0]/gi
let array = s.match(reg)
array.length == 1
return array[0]
else
s = s.replace(reg,"")
f(s) again
function firstNonRepeatingLetter(s) {
let regExp = new RegExp(s[0], "gi");
let result = s.match(regExp);
if (result.length > 1) {
s = s.replace(regExp, "");
return firstNonRepeatingLetter(s);
}
if (result.length == 1) {
return result[0];
}
return "";
}
取字串的第一字元,建立正則表達式;第二參數 gi 表示找全字串並且忽略大小寫。
match 函數取得匹配的所有字元陣列,驗證該陣列長度:
如果大於 1,取代掉重複字元並使用遞迴再次呼叫。
如果等於 1,則返回該字元結果。
如果以上都不符合,最終返回空字串。
最佳解為相同概念,因此略過。